Aggregated resource reservation for data flows

ABSTRACT

A network node for reserving resources for data flows in a communication network. The node detects a request for resource reservation for a new data flow and computes an admission test count based on descriptors of the new data flow and reservation counts, which represent reservation functions of descriptors of previously admitted data flows and which specify resources of the admitted data flows. The new data flow is admitted if the admission test count is smaller than a maximum allowable count. The reservation counts are then updated based on the descriptors of the new data flow. A plurality of admission formulas may thus be used to maintain aggregated reservation counts for data flows, the number of counts being independent from the number of flows.

FIELD OF THE INVENTION

The present invention relates to resource reservation for data flows ina communication network.

BACKGROUND OF THE INVENTION

Communication applications in today's business and private environmentsare ubiquitous and offer a wide variety of different services, such ase-mail services, web browsing, telephony and video conferencing. Withthe different communication applications different resource requirementsemerge. For example an e-mail application requires a transmission ofdata from a sender to a recipient, but generally strict time constrainsare not imposed on the data transmission. However, a voice or videocommunication application requires a certain minimum data throughput andis time sensitive, i.e., delays in the transmission of information leadfor example to voice or video dropouts and corresponding inconvenience.

Further, while traditional circuit switched networks generally provide adedicated connection for a certain application, such as a telephoneconversation or video conference, packet switched or connectionlessnetworks do not provide such dedicated communication line, but may forexample route a sequence of data packets from a source to a destination,possibly over varying paths. A delay of one or more of these packetsduring transmission will cause problems at the destination, as theapplication has to wait for the delayed data packet before continuingthe service.

Obviously such characteristics of networks are undesirable, raising thedemand for mechanisms to assure certain minimum qualities of acommunication in such networks. Quality of service (QoS) is a termreferring to required characteristics of a communication application.For example a quality of service characteristic of a video conferencecould be constituted by a certain minimum data throughput and a certainmaximum delay of data transmissions. In order to meet quality of servicerequirements, a communication application may signal correspondinginformation prior to establishing a communication link between thecommunicating entities. The network in response thereto establishes, ifpossible, a corresponding communication link maintaining therequirements specified.

Communication resources may be reserved for a communication applicationupon initialising the communication or a data flow associated with theapplication. This reservation may address the quality of servicerequirements stated by the communication application. The resources maybe reserved once by a central authority assigning the required resourcesto the communication link or data flow, or the communication resourcesmay be assigned to the communication dynamically on a distributed basesat each network node of the communication network transmitting orrelaying the communication link or data flow. A new data flow can onlybe admitted, if sufficient communication resources are available.

It is therefore required in this case that each network node maintainsinformation on previously allocated communication resources.

However, with a potentially large number of different data flows eachnode must store a correspondingly large amount of data of therequirements for each flow.

SUMMARY OF THE INVENTION

It is an object of the invention to provide for reserving resources fordata flows in a communication network at reduced computationalrequirements for multiple different service requirements.

This object of the invention is solved by the subject-matter of theindependent claims. Advantageous embodiments are disclosed in dependentclaims.

According to an example a method of reserving resources for data flowsin a communication network comprises detecting a request for resourcereservation for a new data flow including a plurality of descriptorsspecifying requested resources; computing an admission test count basedon the plurality of descriptors of the new data flow and reservationcounts, the reservation counts representing reservation functions of aplurality of descriptors of a plurality of admitted data flowsspecifying resources of admitted data flows; admitting the new dataflow, if the admission test count is smaller than a maximum admissioncount for the plurality traffic descriptors; and updating thereservation counts based on the descriptors of the new data flow, if thenew data flow is admitted.

Accordingly, as the reservation counts represent resources for aplurality of admitted data flows with respect to a plurality ofdescriptors such as quality of service requirements, a node may handle apotentially large number of flows without individually storing thedescriptors of each flow. If the flow is admitted only the reservationcounts need to be updated to also reflect the resources for the newflow.

According to an example, the reservation function is constituted by asum function or a product function, a sum function being constituted bya sum of functions having as variables the descriptors of the data flowsand a product function being constituted by a product of functionshaving as variables the descriptors of the data flows. Thus, areservation count can be updated based on the descriptors of the newflow by an add operation or product operation of the existingreservation count and the function of the descriptors of the new flow.

According to another example, updating the admission test count includesadding the sum function of the descriptors of the new data flow to thereservation count or multiplying the reservation count with the productfunction of the descriptors of the new flow. The corresponding updatedreservation counts then advantageously reflect all admitted data flowsincluding the new flow.

According to another example, each reservation count can be updated if arelease instruction for one of the admitted flows is received, based onthe corresponding descriptors. Releasing a flow may include subtractingthe sum function of the descriptors of the released flow from thereservation counts or dividing the reservation counts by the productfunction of the descriptors of the released data flow. Accordingly, areleased flow can be reflected in the reservation counts by asubtraction operation or division operation, avoiding the need tomaintain the descriptors of all flows which potentially be released.

Still further, according to another example, computing each reservationcount is based on flows admitted of refreshed during a refresh windowhaving a predetermined duration. A flow may be released unless a refreshrequest associated with the flow is received during the refresh windowor if an explicit release instruction is received. Accordingly, bymaking use of the refresh window and by releasing all flows notrefreshed within the refresh window or explicitly released, thereservation counts can keep track of all flows admitted and not releasedduring the duration of the refresh window.

According to an advantageous embodiment, each reservation count maycomprise a plurality of sub-counts, each sub-count being based on flowsadmitted or refreshed during adjacent sub-portions of the refreshwindow, a sub-portion corresponding to a unit in time for advancing therefresh window. Upon advancing the refresh window by one unit in time anew sub-count can be generated and the oldest of the sub-counts isremoved. Accordingly, upon each advancing of the sliding window by oneunit in time an oldest sub-count can be removed and a new sub-count becomputed based on all admitted new flows, refreshed and released flows.The new reservation sub-count then reflects all new, refreshed andreleased flows, so that the oldest reservation count is obsolete.Accordingly, it is sufficient to maintain a plurality of reservationsub-counts, one for each reservation count for each sub-portion or unitin time of the refresh window, further reducing computationalcomplexity.

According to another example, the admission test vector is computedbased on a sum of a measured bandwidth, a peak rate of the new flow andthe sum of degrades of the new flow in the admitted flows.

A program may be provided having instructions adapted to carry out theabove operations and a computer readable medium may comprise theprogram. A computer program product may comprise the computer readablemedium.

According to another example, a network node for reserving resources fordata flow in a communication network may be provided, comprising aresource manager for detecting a request for resource reservation for anew data flow including a plurality of descriptors specifying requestedresources, and for computing an admission test count based on aplurality of descriptors of the new flow and reservation counts, thereservation counts representing reservation functions of a plurality ofdescriptors of a plurality of admitted data flows and specifyingresources allocated for admitted data flows, a flow control unit foradmitting new data flow, if the admission test count is smaller than amaximum admission count for the plurality of traffic descriptors, andwherein the resource manager is adapted to update the admission testcounts based on the descriptors of the new flow, if the new flow isadmitted.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates elements of a communication system for resourcereservation according to an embodiment of the invention;

FIG. 2 illustrates reservations of a method for reserving resources fordata flows in a communication network according to an embodiment of theinvention;

FIG. 3 illustrates operations of a method for resource reservationaccording to another embodiment of the invention, particularlyillustrating releasing a data flow;

FIG. 4 illustrates operations of a method for resource reservationaccording to another embodiment of the invention, particularlyillustrating updating reservation counts; and

FIG. 5 illustrates operations of a method for resource reservation in acommunication network according to another embodiment of the invention,particularly illustrating maintaining reservation sub-counts inconnection with a sliding window algorithm.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates elements of a communication network for resourcereservation for data flows according to an embodiment of the invention.

FIG. 1 illustrates a communication node of a network for relaying ortransmitting data flows between communicating entities. The networknode, generally denoted 100, is provided with a resource manager 110 anda flow control unit 120. The flow control unit provides forcommunication resources for data flows and may admit or deny a new dataflow. The resource manager keeps track of the resources available at thenetwork node for relaying or transmitting data flows. The network node100 is connected to neighbouring network nodes, denoted 130, viacommunication links 150. Each of the network nodes 130 may have asimilar constitution as the network node 100, i.e., each node may beauthorized to keep track of available resources and to admit or deny anew data flow. The network nodes 100, 130 may form part of a largernetwork, constituted by a large number of network nodes andcommunicating entities.

The resource reservation mechanism at the network node 100 becomesactive, if a resource request is received, as schematically illustratedat 151. The resource request may be issued by a communicating entity,such as a computing device, a telephone, a video conferencing equipmentand similar, and may be either received directly from the communicatingentity or via the network nodes 130 and over the communication links 150connecting the network nodes 130 and the network node 100.

The resource manager 110 is provided for detecting the resource request151 for resource reservation for a new data flow asking to be admittedat the network node 100. The resource request at least includes aplurality of descriptors specifying requested resources, such as aminimum bandwidth requirement, a mean bandwidth requirement, a maximumtime delay for data transmission, a peak rate, a mean rate, or any otherquality of service requirement. In addition thereto the resource requestmay also include an identity of the requesting entity and the data flow,an authorization code for requesting certain resources, security codesand similar.

When resource request is detected, the resource manager 110 computes anadmission test count based on the plurality of descriptors of the newflow and a constant number of reservation counts, for example previouslycomputed and maintained in a storage unit. The reservation countsrepresent the results of computing reservation functions having asvariables a plurality of descriptors of a plurality of admitted dataflows and specifying resources of the admitted data flows. Thereservation counts thus reflect the resource descriptors of theindividual flows in an aggregated manner, i.e. without explicitlydenoting the resource descriptors of the individual flows. As theresource descriptors are not stored individually for all flows, thenumber of variables, reservation counts, becomes independent of thenumber of flows and the system becomes easily scalable.

More precisely, upon detecting a resource request the resource managerextracts from the resource request the descriptors of the flow requestedto be admitted, and computes or obtains, such as from the storage unit,the reservation counts representing reservation functions ofcorresponding descriptors of already admitted data flows and specifyingthe allocated resources.

A plurality of reservation functions may be present, each associatedwith a reservation count and specifying mathematical operations, such assum, product, square root, etc. operations, to be carried out on theresource descriptors or rather descriptor values of the admitted dataflows.

In addition thereto the reservation function is executed also with thedescriptors of the new data flow as variables and then a correspondingadmission test count is obtained based on the result of the computationof the reservation function on the descriptor values of the new dataflow and the reservation counts. The admission test count may be asingle value or a collection of different values in a vector andrepresents the overall required resources, if the new flow wereadmitted.

According to an example, a reservation count may represent a requiredbandwidth for all admitted flows, an estimated peak rate for alladmitted flows, a maximum guaranteed time delay for transmitting data,and similar. The admission test count would then reflect the overallbandwidth including the new data flow, the maximum peak rate includingthe new data flow and a maximum guaranteed time delay for datatransmission including the new data flow.

After computing the admission test count the resource manager decidesthat the new data flow is to be admitted, if the admission test countdoes not exceed a maximum admission count for the plurality of trafficdescriptors, wherein the maximum admission count for example constitutesan admission function of maximum reservation counts.

For example, the maximum admission counts could be calculated on thebasis of threshold limits for individual resources offered by thenetwork node, such as a maximum available bandwidth, a maximum allowablepeak rate, etc.

According to an example, the maximum admission count represents a singlevalue, such as a weighted calculation based on each of maximum allowabledescriptors, and similarly the admission test count may be constitutedby a single value reflecting for example a weighted calculation based onthe plurality of reservation counts and the descriptors of the new flow.In this case a flow will be admitted, if the value of the admission testcount does not exceed the maximum admission count.

Alternatively, the maximum admission count comprises a plurality ofvalues corresponding to individual maximum resource descriptors andindividual comparisons may be carried out with corresponding elements ofthe admission test count. A flow could be admitted, if none of theelements of the admission test count exceeds the corresponding maximumreservation counts of the maximum admission count. If the admission testcount and the maximum admission count are constituted by a plurality ofvalues, an admission of a new flow may also take place according tocertain rules, such as allowing one of the components to exceed acorresponding maximum component, etc.

If the new data flow is admitted, the reservation counts are updatedbased on the descriptors of the new data flow such that after the updateoperation the reservation counts reflect all reserved resources for alladmitted data flows, including the new data flow. If the new flow is notadmitted, the resource manager does not update the reservation counts,in which case the reservation counts remain reflecting the previouslyadmitted data flows.

The flow control unit 120 executes after the admission check the stepsfor admitting or denying the data flow, including reserving thecorresponding resources and subsequent transmission of data pertainingto the admitted data flow.

The network node 100 is one of a plurality of nodes of a communicationnetwork, such as a wireless communication network or a wire bound ormixed communication network. The network node may for example be arouter of a network, such as in an Internet based network, a basestation, or any network node interfacing neighbouring communicationnetworks. The communication links in the network are illustrated at 150and may be dedicated communication links, connectionless communicationlinks or wireless links. According to one example the communicationnetwork is at least partially constituted by a packet switched network,such as an IP based network, e.g. the Internet, with a sequence ofpackets constituting a data flow admitted or checked for admission.

In operation, each network node may be responsible for managing its ownresources, i.e., to admit data flows or deny data flows. Accordingly, adata flow can only be routed from a source to a destination, if allnetwork nodes along the path admit the data flow. The admission flowprocedure may be carried out dynamically, such as when a communicationapplication takes steps to set up a communication session and requestsrouting of a corresponding data flow.

According to an example the resource manager 110 and the flow controlunit 120 are constituted by processing elements of the network node,such as corresponding hardware and/or software. Alternatively or inaddition thereto, external components may be made use of, such asexternal memories for storing reservation counts, external processingelements for computing admission test counts, etc. The resource managerand the flow control unit may be constituted by separate dedicatedelements, communicating with one another via internal busses, etc.Alternatively, the resource manager and flow control unit may beconstituted by logic entities realized at least partially bycorresponding software routines executed on a processing unit.

In accordance with the above embodiment, as a constant number ofreservation counts aggregate resources for a plurality of admitted dataflows with respect to a plurality of descriptors such as quality ofservice requirements, such as peak bandwidth rate, average rate, burstsize, etc., a node may handle a potentially large number of flowswithout individually storing the descriptors of each flow. If the flowis admitted only the reservation counts need to be updated to alsoreflect the resources for the new flow. An admission control formula cantherefore be maintained in a reduced state environment, with thereservation counts aggregating the admitted resources.

In the following a further embodiment of the invention will be describedwith regard to FIG. 2. FIG. 2 illustrates operations of a method forresource reservation in a communication network.

In a first operation 201 a request for resource reservation for a newdata flow is detected, the request for resource reservation including aplurality of resource descriptors specifying requested communicationresources at a network node. In one example the request is received ateach network node along a path between two communicating entities. Therequest for resource reservation may be transmitted in accordance with acommunication protocol for message exchange in a communication network,and may for example be forwarded from one network node to a subsequentnetwork node along a desired or suitable communication path from acommunication source to a communication destination. The request forresource reservation requests admission of a new data flow at thenetwork node.

The data flow may be any form of a data for transmission from thecommunication source to the communication destination. For example, thedata flow may be a continuous data stream or a sequence of data packetscarrying communication data.

The request for resource reservation may request admission of the newdata flow unidirectionally, i.e., from the communication source to thecommunication destination, or may request for admission of the data flowbidirectionally, from the communication source to the communicationdestination and on the return path from the communication destination tothe communication source.

The application data or payload information transmitted with the dataflow may stem from any kind of communication, i.e. may include e-maildata, voice data, data of a video conference, data pertaining to anexchange between computing devices, etc.

Preferably, the descriptors specifying requested resources specifyminimum required resources for satisfying the requirements of theunderlying application. For example, the descriptors may specify arequired bandwidth, a medium required bandwidth, a peak rate, a meanrate and a maximum allowable transmission delay and similar. Moreover,the descriptors may specify a leaky bucket and a token bucket.

In an operation 202 at the network node an admission test count iscomputed based on the plurality of descriptors of the new flow receivedwith the request for resource reservation and a plurality of reservationcounts. The reservation counts represent reservation functions of aplurality of descriptors of a plurality of admitted data flows andspecify the aggregate resources of all admitted data flows. Thereservation functions may be constituted for example by sum functions,product functions, or a collection of sum and product functions. A sumfunction being is constituted by a sum of a reservation function havingas variables the descriptors respectively of each of the data flows anda product function being constituted by a product of functions having asvariables the descriptors of the data flows.

In general term a sum function has the following form:

$\begin{matrix}{{S_{n} = {\sum\limits_{i}\;{f_{n}\left( {\overset{\_}{p}}_{i} \right)}}},} & (1)\end{matrix}$and a product function

$\begin{matrix}{P_{m} = {\prod\limits_{i}\;{g_{m}\left( {\overset{\_}{p}}_{i} \right)}}} & (2)\end{matrix}$with:S_(n) and P_(m) constituting reservation counts,p _(i) representing the vector of the descriptors of the flow i;f_(j) representing a reservation sum function of the sum typereservation count j;g_(k) representing a reservation product function of the product typereservation count k;

According to an example the admission test vector is computed based on asum of a measured bandwidth, a peak rate of a new data flow and the sumof peak rates of the new data flow and the admitted flows.

In this example the Hoeffding-Bounds (HB) are used to make an admissiondecision. Here, the (n+1)th flow is admitted if:

$\begin{matrix}{{{M + p_{new} + \sqrt{\frac{{\ln\left( {{1/} \in} \right)}\left( {{\sum\limits_{i = 1}^{n + 1}\;\left( p_{i} \right)^{2}} + \left( p_{new} \right)^{2}} \right)}{2}}} \leq C},} & (3)\end{matrix}$where M is the measured bandwidth, p_(i) is the signalled peak rate ofthe ith flow, epsilon is a parameter that controls the degree of risk ofthe admission control procedure, and C is the link capacity. The formulacan be transformed into a form suiting a reduced state environment:

$\begin{matrix}{{G\left( {S_{1},M,p_{new}} \right)} = {{M + p_{new} + \sqrt{\frac{{\ln\left( {{1/} \in} \right)}\;\left( {S_{1} + p_{new}^{2}} \right)}{2}}} \leq C}} & (4)\end{matrix}$

This example admission control formula requires to maintain

$S_{1} = {\sum\limits_{i}p_{i}^{2}}$as an aggregated variable.

With the reservation counts being represented by sum functions orproduct functions of the descriptors of the admitted data flows, it canbe kept track of admitted resources without maintaining information onthe descriptors of each admitted data flow itself. Rather, theaggregated results of the sum or product function computations of thedescriptors of all admitted flows are maintained as reservation counts.Each reservation count therefore may correspond to an amount or extentof resources used at the network node corresponding to the descriptorsof all admitted data flows.

Computing the admission test count includes integrating the descriptorsof the new data flow into the reservation counts. If the reservationfunction for computing the reservation count is e.g. a sum function, thereservation function of the descriptors of the new flow can be added tothe reservation flow, and if the reservation function is a productfunction, the product function of the descriptors of the new flow can bemultiplied with the corresponding reservation count.

The admission test count then is a function of all reservation counts,including the descriptors of the new data flow.

Generally speaking, the admission test count is in the following form:

$\begin{matrix}{F\left( {{\sum\limits_{1}\;{f_{1}\left( {\overset{\_}{p}}_{i} \right)}};\ldots\mspace{14mu};{\sum\limits_{I}\;{f_{j}\left( {\overset{\_}{p}}_{i} \right)}};{\prod\limits_{1}{g_{1}\left( {\overset{\_}{p}}_{i} \right)}};\ldots\mspace{14mu};{\prod\limits_{i}{g_{k}\left( {\overset{\_}{p}}_{i} \right)}};{\overset{\_}{p}}_{new};\overset{\_}{C}} \right)} & (5)\end{matrix}$with:p _(i) represents the vector of the descriptors of the flow i;f_(j) represents a reservation sum function of the sum type reservationcount j;g_(k) represents a reservation product function of the product typereservation count k;p_(new) represents the vector of the descriptors of the new data flow;C represents the vector of pre-configured parameters of the admissiontest count; andF represents an arbitrary function.

After computing the admission test count in an operation 203 it isdetermined whether the admission test count does not exceed a maximumadmission count. The maximum admission count stands for a maximumallowable resource reservation and is based on maximum values of theresources available at the network node described by the descriptors ofthe admitted and new data flows. Preferably, the maximum admission countis based on an admission function of maximum reservation counts.

In general terms the maximum admission count is represented as:F′(S ₁ ;S ₂ ; . . . ; S _(f) ;P ₁ ;P ₂ ;P _(k) ; p _(new) ; C )  (6)with:S_(j) representing maximum reservation counts for the sum functions;P_(k) representing maximum reservation counts of sum functions; andF′ representing an admission function.

The determination operation 203 may include a comparison of two values,or may include a comparison of multiple values representing theadmission count and corresponding values representing the maximum count.The comparison operation may be viewed as a comparison of two vectors,an admission count vector and a maximum count vector. The admissioncount would be considered not to exceed the maximum admission count, ifnone of the elements of the admission test count exceed a correspondingvalue of the maximum admission count. Alternatively, a length of theadmission test count vector and a length of the maximum admission countvector could be compared.

If in operation 203 the decision is “NO”, i.e., if the admission testcount exceeds the maximum admission count, the new data flow is rejectedin an operation 206.

If in operation 203 the decision is “YES”, i.e., when the admissioncount does not exceed the maximum admission count, the new data flow isadmitted in operation 204. Admitting the new data flow preferablyincludes allocating the required resources for routing the new data flowin accordance with the resource request. Operation 204 may also includeinforming the requesting entity and all communication nodes along thecommunication path of the admission of the data flow.

Further, in an operation 205 the reservation counts are updated based onthe descriptors of the new flow. This operation is for reflecting thenow allocated resources for the new data flow into the reservationcounts. Updating the reservation counts may include storing the elementsof the admission test count, i.e., the reservation counts including thedescriptors of the new flow as new reservation counts. If thereservation function is a sum function, the corresponding updatedreservation count then is the sum of the previous reservation count andthe reservation sum function of the descriptors of the new flow. If thereservation function is a product function, the updated reservationcount corresponds to the product of the previous reservation count andthe reservation product function of the descriptors of the new flow. Theupdate operation may include overwriting a previous reservation count toreflect from now on the updated reservation count for example in anadmission operation of a further new data flow.

If the new data flow was rejected, no such updating operation is carriedout, and the previously stored or computed reservation counts aremaintained as they are.

In the following a further example for an admission control formula willbe described.

This example shows the reduced state implementation of the heavy trafficapproximation (HTA) theory as described for example in H. G. Perros andK. M. Elsayed: “Call admission control schemes: A review”, IEEECommunications Magazine, vol. 34, no. 11, pp. 82-91, November 1996.

According to the heavy traffic approximation theory a new flow isadmitted at a node if

$\begin{matrix}{{{{In}\left\lbrack {\gamma\frac{1}{\,_{z}K}} \right\rbrack} < {{In}\; ɛ}}{wherein}} & (7) \\{z \approx {1 + \frac{1 - \left( {{\sum\limits_{i = 1}^{n}\;{r_{i}R_{i}}} + {r_{new}R_{new}}} \right)}{{\sum\limits_{i = 1}^{n}{r_{i}{R_{i}\left( {1 - r_{i}} \right)}^{2}b_{i}}} + {r_{new}{R_{new}\left( {1 - r_{new}} \right)}^{2}b_{new}}}}} & (8)\end{matrix}$with the following pre-configured parameters, i.e. parameters dependingon the environment, such as the node, and not the flow itself:

-   -   γ: a constant parameter    -   K: is the buffer capacity at the node    -   ε: is the target loss probability        and with the following per-flow signalled descriptors, i.e.        descriptors transmitted in association with a flow.    -   R_(i): is the peak rate of flow i    -   r_(i): is the activity factor of flow i    -   b_(i): mean duration of active periods of flow i

The above admission control function (8) can be transformed into areduced state environment, if the following reservation counts aredefined:

$\begin{matrix}{S_{1} = {\sum\limits_{i = 1}^{n}{r_{i}R_{i}}}} & (9) \\{S_{2} = {\sum\limits_{i = 1}^{n}{r_{i}{R_{i}\left( {1 - r_{i}} \right)}^{2}b_{i}}}} & (10)\end{matrix}$substituting the reservation counts (9) and (10) into the admissioncontrol function (8) leads to the reduced state admission controlfunction:

$\begin{matrix}{z = {1 + \frac{1 - S_{1} - {r_{new}R_{new}}}{S_{2} + {r_{new}{R_{new}\left( {1 - r_{new}} \right)}^{2}b_{new}}}}} & (11)\end{matrix}$

If now a new flow wishes to be admitted the following admission testcount is computed on the basis of the reservation counts (9) and (10)and the vector of the descriptors of the new flow p _(new).

$\begin{matrix}{{{In}\left\lbrack {\gamma\frac{1}{\left\{ {1 + \frac{1 - S_{1} - {r_{new}R_{new}}}{S_{2} + {r_{new}{R_{new}\left( {1 - r_{new}} \right)}^{2}b_{new}}}} \right\}^{K}}} \right\rbrack} < {{In}\; ɛ}} & (12)\end{matrix}$

The admission test count is compared to the maximum admission count, asdescribed previously, and if it is decided to admit the flow, thereservation counts (9) and (10) are updated as follows:S ₁ ←S ₁ +r _(new) R _(new)  (13)S ₂ ←S ₂ +r _(new) R _(new)(1−r _(new))² b _(new)  (14)

If the flow is not admitted, i.e. if the reservation test count exceedsthe maximum admission count, as described previously, the reservationcounts (9) and (10) are not updated.

On the other hand, if a flow is released by explicit signalling of thecorresponding descriptors, then the reservation counts (9) and (10) areupdated as follows:S ₁ ←S ₁ −r _(new) R _(new)  (15)S ₂ ←S ₂ −r _(new) R _(new)(1−r _(new))² b _(new)  (16)

FIG. 2 illustrates the advantages of the inventive method of avoidingstoring descriptors of each admitted and new data flow, instead aconstant number of reservation counts representing some more productfunctions of the descriptors of all flows are maintained and suitablyupdated if new flows are admitted.

In the following a further embodiment of the invention will be describedwith regard to FIG. 3.

FIG. 3 shows operations of a method for resource reservation,particularly illustrating operations in connection with releasingresources of flows previously admitted.

Operations start at an entry point A that for example follow operation205 of FIG. 2.

As noted with regard to the previous embodiments, reservation counts aremaintained, the reservation counts reflecting resources of all admittedflows in an aggregated manner, i.e., the information is not stored withrespect to each admitted flow, but in an aggregated manner reflectingall flows collectively. Accordingly, special provision must be made tonot only terminate a data flow, but also to remove allocated resourcesor more precisely resource descriptors of requested resources from thereservation counts for a particular flow that is not any longermaintained.

In a first operation 301 it is determined whether a release instructionin association with a particular flow is received. A release instructionmay be transmitted similar to a resource request from the communicationsource along the path of the admitted data flow, to inform eachcommunication node of the fact that the communication link andassociated data flow is not any longer required. Preferably the releaseinstruction includes an indication of the flow or communication link tobe released and furthermore includes the descriptors of the resourcesadmitted for the data flow. The descriptors of the admitted resources,i.e., the resources previously requested when transmitting the resourcerequest for admitting the data flow can be used for correspondinglyadjusting the reservation counts, as will be outlined further below.

If in operation 301 the decision is “YES”, indicating that a releaseinstruction was received, in an operation 303 the corresponding dataflow is released, making the correspondingly allocated resourcesavailable for further data flows. Releasing the data flow may includeterminating an associated communication link such as by the flow controlunit 120 shown in FIG. 1.

If in operation 301 the decision is “NO”, indicating that a releaseinstruction was not received, in an operation 302 it is determinedwhether a refresh request is received within a certain predeterminedtime period. For example, the communication network is designed suchthat each communication entity requiring maintenance of an admitted flowtransmits a refresh request periodically in order to inform eachrelaying communication node that the communication link or data flow isstill required. For example, a communication entity such as acommunication application may upon a terminating event such as a killingof the application or a shutdown of a computing device running theapplication not be in the position for sending an explicit releaseinstruction, but may be simply terminated. If flows would only bereleased upon explicit release instructions, in such cases communicationlinks or data flows may be maintained indefinitely.

Therefore, information that a data flow is no longer required, e.g. uponterminating a corresponding communication application, can also beconveyed by seizing to transmit periodic refresh requests. The refreshrequest preferably includes, similar to the release instruction, anindication of the data flow to be maintained and may also include thedescriptors of the resources of the flow to be maintained such as thedescriptors of the previous resource request issued for the flow.Including the descriptors of the to be maintained data flow into therefresh request enables maintaining the reservation counts updated, aswill be outlined further below.

If in operation 302 the decision is “NO”, indication that a refreshrequest within a certain predetermined time period or refresh period wasnot received, the data flow is released in operation 303, as describedbefore.

Thereafter, in an operation 304 the reservation counts are updated basedon the descriptors of the released flow. Releasing a data flow, if anexplicit release instruction was received, includes the reverse processto including descriptors of a new flow into a reservation count, i.e.includes subtracting from the reservation counts all sum functions ofthe descriptors of the released data flow and dividing the reservationcounts of all product functions by the product function of thedescriptors of the released data flow. Accordingly, upon an explicitrelease instruction the reservation counts can be updated by removingfrom the aggregated counts the resources of the released flow based onthe descriptors of the released flow.

If the data flow in operation 303 was released upon the absence of arefresh request within the required time period, the communication nodemay actively inquire on the descriptors of the flow, e.g. byinterrogating the entity formally requesting admission of the data flow.Based on this interrogation the network node obtains the descriptors ofthe non-refreshed flow and can correspondingly remove the descriptorsfrom the reservation counts as outlined before with regard to theexplicitly released flow.

Accordingly, the reservation counts may always be kept up to date andreflect all flows continuously in use.

If the communication node is unable to obtain the descriptors of thenon-refreshed flow, a time based algorithm may be used that will beoutlined in more detail with regard to FIG. 5. Briefly, this algorithminvolves treating each refreshed flow as new flow that is admitted, i.e.the descriptors of each refreshed flow are included into the reservationcounts. In order to avoid over-representing of descriptors and thusresources of refreshed flows in the reservation counts, as for eachrefresh the reservation counts are increased, the reservation counts areprovided with time tags, allowing removal of expired portions orsub-counts of the reservation counts. A sub-count of the reservationcount can e.g. be removed, if the time tag of the reservation sub-countis older than the refresh period, in which refresh requests have to beissued, as in this case all refreshed flows are considered anew in thecounts and an oldest count already reflecting the refreshed flow shouldthen be removed. All non-refreshed flows will not be represented anew inthe newer reservation counts and will be removed with the oldest count.

Following a further embodiment of the invention will be described withregard to FIG. 4. FIG. 4 illustrates operations of a method for resourcereservation, particularly illustrating operations for computing anadmission test count and updating reservation counts if flows areadmitted.

In a first operation 401 is determined whether a new flow should beadmitted, as outlined with regard to previous embodiments.

In an operation 402 a reservation count is retrieved from a memory, thereservation count being previously computed for each of a plurality ofadmitted flows based on a reservation function. As noted before, in caseof a reservation sum function the reservation count is obtained bysummarizing all sum functions of the descriptors of the already admittedflows.

If the reservation function is a product function, the reservation countis constituted by a product of all product functions of the descriptorsof the already admitted flows.

Subsequently, in an operation 403, the reservation function is computedfor the descriptors of the new flow requesting to be admitted.

Then, in an operation 404 the reservation count obtained with operation402 and the result of operation 403 are combined depending on thefunction type. If the reservation function is a sum function, the resultof operation 403 is added to the reservation count, and if thereservation function is a product function the result of operation 403is multiplied with the reservation count obtained in operation 402.Then, in operation 405 it is determined whether a further reservationfunction is defined.

It is noted that the reservation functions can be arbitrary sum orproduct functions that may be predetermined or determined dynamically atneed, e.g. by a network operator. Accordingly, the inventive frameworkfor reserving resources and maintaining aggregated reservation statescan be adapted to individual needs, by enabling definition ofproprietary reservation functions.

If in operation 405 it is determined that a further reservation functionis defined, operations 402-404 are repeated.

If in operation 405 it is determined that a further reservation is notdetermined, in an operation 406 an admission test count is computedbased on the thus obtained reservation counts. Computing the admissiontest count may include any mathematical operations on the individualreservation counts, such as a weighted sum of the reservation counts, aweighted product of the reservation counts or any other operation.

Alternatively, according to another example, operation 404 is omittedand operation 406 includes the computation of the admission test counton the basis of the reservation counts and the computed reservationfunctions for the descriptors of the new flow from operation 403.

According to another example the reservation counts are maintained in avector constituting the admission test count.

Then, in an operation 407 the thus obtained admission test count iscompared to the maximum admission count. The maximum admission count, asoutlined for example with regard to FIG. 2, may be constituted by aadmission function of predefined maximum reservation countscorresponding to the reservation counts of the admission test count.

If the admission function, i.e., the maximum admission count is a singlevalue, operation 407 is a simple comparison operation to determinewhether the admission test count is smaller than the maximum admissioncount. If the admission test count and correspondingly the maximumadmission count are represented by vectors of reservation counts, theindividual elements of the vectors, such as the individual reservationcounts and corresponding maximum reservation count are compared. In thiscase, according to an example, the admission test count is determined tobe smaller than the maximum admission count, if all elements of theadmission test vector are smaller than the corresponding maximumadmission count.

If in operation 407 the decision is “YES”, indicating that the admissiontest count is smaller than the maximum admission count, in an operation408 the reservation counts including the descriptors of the new flow arestored at updated reservation counts. Accordingly, the now storedreservation counts reflect all admitted data flows, including the newlyadmitted data flow. Storing or updating the reservation counts mayinclude overwriting corresponding previously stored reservation counts,stored prior to detecting a resource request for a new data flow.

If in operation 407 the decision is “NO”, indicating that the admissiontest count is not smaller than the maximum admission count, in anoperation 409 the computed reservation counts including the descriptorsof the new flow are discarded, and the previously computed reservationcounts are maintained, i.e., the reservation counts available beforedetecting the resource request for the new data flows.

Accordingly, the reservation counts always reflect the currentlyadmitted data flows, or more precisely the resources required for thecurrently admitted flows.

In the following a further embodiment of the invention will be describedwith regard to FIG. 5. FIG. 5 illustrates operations of a method forresource reservation, particularly outlining steps for releasing dataflows.

With regard to FIG. 3 an embodiment was described pertaining to arelease of data flows and corresponding updating of the reservationcounts. In operation 304 of FIG. 3 it was assumed that in case of notreceiving a refresh request within a certain refresh time period, thedescriptors of the non-refreshed flows are obtained to correspondinglyupdate the reservation counts. However, in case such information is notavailable, i.e., if the descriptors of the non-refreshed flow cannot beobtained, a corresponding update operation cannot be carried out. Asnoted before, the reservation states are not maintained individually,i.e., the network node does not store the individual descriptors of theindividual admitted flows, but only aggregated reservation counts aremaintained. The embodiment of FIG. 5 addresses the above problem ofremoving non-refreshed data flows from the reservation counts by using asliding window technique.

As noted above, this involves treating each refreshed flow as new flowthat is admitted, i.e. the descriptors of each refreshed flow are againincluded into the reservation counts. In order to avoidover-representing of descriptors and thus resources of refreshed flowsin the reservation counts, as for each refresh the reservation countsare increased, the reservation counts are provided with time tags, and asliding window is defined allowing removal of expired portions orsub-counts of the reservation counts. A sub-count of the reservationcount can e.g. be removed, if the time tag of the reservation sub-countis older than the refresh period, in which refresh requests have to beissued, as in this case all refreshed flows are considered anew in thecounts and an oldest sub-count already reflecting the refreshed flowshould then be removed using the sliding window. All non-refreshed flowswill not be represented anew in the newer reservation counts and will beremoved with the oldest count.

Generally, the sliding window is used to calculate reservation countsfor each reservation function in a certain time period based on allnewly admitted flows and refreshed flows, and for discarding reservationcounts when advancing the sliding window. Thus, reservation counts canbe discarded after a certain time span, the refresh period forrefreshing data flows as outlined before, as it is known that eachnon-refreshed flow after this time span can be released.

In a first operation 501 a sliding window having a predetermined lengthis defined, sub-divided into a plurality of sub-portions correspondingto a unit in time for advancing the sliding window. In other words, thesliding window is advanced by a sub-portion or unit upon lapse of acorresponding time period. Preferably, the sliding window has apredetermined length corresponding to the refresh period, in whichrefresh requests have to be issued by the application in order to avoida release of the data flow.

In a operation 502 reservation sub-counts are maintained, each sub-countcorresponding to data flows admitted or released in a sub-portion of thesliding window. Accordingly, each reservation count is constituted by anumber of reservation sub-counts, the number of reservation sub-countscorresponding to the number of sub-portions of the sliding window.

In an operation 503 it is determined whether the sliding window is to beadvanced, upon lapse of each unit in time for advancing the slidingwindow. If in operation 503 it is determined that the sliding window isadvanced, in an operation 504 a new sub-count for a new sub-portion ofthe sliding window is computed for each reservation count, based on alldynamic changes of the resource reservation situation at the networknode. The new reservation sub-count thus includes computing thereservation functions of the descriptors of all new data flows, theremoval of resources of released data flows form the reservation countsand also includes reservation functions computed on descriptors ofrefreshed data flows. As noted with regard to FIG. 3 operation 302, arefresh request may include the descriptors of the correspondingly flowto be further maintained, and accordingly, the new reservation sub-countalso represents resources of refreshed data flows. Accordingly, with theadvancing of the sliding window new reservation sub-counts are computed,for reflecting resources in an aggregated manner for all newly admitteddata flows, admitted according to the procedure described with regard toprevious embodiments, refreshed data flows, and explicitly released dataflows, as outlined before.

In order to avoid a double representation of resources for refresheddata flows in the reservation count, parallel to computing newreservation sub-counts for a new unit in time, the oldest reservationsub-counts are discarded. The oldest reservation sub-counts, i.e. thereservation count no longer forming part of the sliding window uponadvancing the sliding window by one unit in time, represents allresources reserved for flows more than one refresh period or slidingwindow duration go. Any flows that have been refreshed during thisperiod will be represented in one of the reservation sub-counts of thesliding window, and thus removing the oldest reservation sub-counts willeffectively lead to a removal of reservation states from the reservationcounts pertaining to all non-refreshed data flows.

Accordingly, even though the reservation states are maintained in anaggregated manner without explicit information on the descriptors ofeach flow, non-refreshed flows can be removed from the reservationcounts.

The embodiments described above introduce a system that uses a generaladmission control formula framework in a sliding window technique. Theembodiments described above provide efficient resource utilization fordata flows by implementing reservation counts with aggregated variables.With the number of variables or reservation counts being independent onthe number of flows the introduced technique is arbitrarily scalable.

According to another example, the network node is an IP (InternetProtocol) router that includes at least a resource manager and a flowcontrol unit, such as outlined with regard to FIG. 1. The flow controlunit may include an admission control unit implementing the aboveoutlined admission control formulas expressed as multiple sum andproduct constructs of flow descriptors. Incoming resource requests maybe processed in the resource manager and the admission control unit mayperform the admission control decision. If the decision is positive therequested resources are added to the corresponding aggregated resourcesin the resource manager and the corresponding flow is admitted by theflow control unit. The above examples disclose the way to maintain flowdescriptors, their functions, sum and product constructs in anaggregated manner to avoid storing flow descriptors of individual flows.

The invention is particularly applicable in streaming media applicationsposing strict requirements for the underlying transport network, asoutlined before. Therefore, the task of deciding on the admission of anew flow has to avoid disrupting previously admitted flows. Consideringfor example the distributed knowledge principal of the Internet, withouta centralized control, the admission decision preferably is madehop-by-hop, at each communication node, as disclosed above. Moreover, asthe request for new flows may arrive at the communication nodes anywhereanytime, the decision has to be made on demand, based on the sourcerequest.

The above described embodiments are particularly useful fordifferentiated services networks, where network elements are categorizedas edge and core nodes. Edge nodes are permitted to use per flow states,i.e., store descriptors pertaining to each flow admitted, while corenodes are only allowed to store aggregated variables, as described abovewith the reservation counts. Accordingly, the network node describedwith regard to the above embodiments may constitute a core node in adifferentiated services network.

The descriptors of the flow to be admitted, like peak rate, mean rate,activity factor, etc. are signalled using a resource reservationsignalling protocol available in the network.

With the reservation states handled as aggregated soft states,reservations not refreshed during a certain refresh period areautomatically removed from the aggregated reservation states after lapseof a certain time period, as outlined with regard to FIG. 5.

The invention claimed is:
 1. A method of reserving resources for dataflows in a communication network, said method comprising the steps of:detecting a request for resource reservation for a new data flowincluding a plurality of descriptors specifying requested resources,wherein the plurality of descriptors are selected from a minimumbandwidth requirement, a mean bandwidth requirement, a maximum timedelay for data transmission, a peak data rate, a mean data rate, and aquality of service requirement; computing an admission test countrepresenting overall required resources when the new data flow isadmitted, wherein the admission test count is computed based upon theplurality of descriptors of the new data flow and upon reservationcounts, wherein each reservation count represents a product functionconstituted by a product of functions having as variables the pluralityof descriptors of the admitted data flows; admitting the new data flow,when the admission test count is smaller than a maximum admission countrepresenting a maximum bandwidth capability of the network; updating thereservation counts to include the descriptors of the new data flow, whenthe new data flow is admitted; receiving a release instruction for anidentified admitted data flow; releasing the identified admitted dataflow; and updating each reservation count to remove the correspondingdescriptors of the released data flow by dividing the reservation countsby the product function of the descriptors of the released data flow. 2.The method as recited in claim 1, wherein the step of updating thereservation counts includes multiplying the reservation count with aproduct function of the descriptors of the new data flow.
 3. The methodas recited in claim 1, wherein the step of computing each reservationcount includes computing each reservation count based on data flowsadmitted or refreshed during a refresh window having a predeterminedduration.
 4. The method as recited in claim 3, further comprisingreleasing a data flow unless a refresh request associated with the dataflow is received during the refresh window or when an explicit releaseinstruction is received.
 5. The method as recited in claim 3, whereineach reservation count comprises a plurality of sub-counts, eachsub-count based on data flows admitted or refreshed during adjacentsub-portions of the refresh window, a sub-portion corresponding to aunit in time for advancing the refresh window.
 6. The method as recitedin claim 5, wherein upon advancing the refresh window by one unit intime, a new sub-count is generated and the oldest of the sub-counts isremoved.
 7. A network node for reserving resources for data flows in acommunication network, said network node comprising: at least oneprocessor and a memory that stores computer program instructions,wherein when the at least one processor executes the computer programinstructions, the at least one processor controls the following nodecomponents: a resource manager configured to: detect a request forresource reservation for a new data flow, the request including aplurality of descriptors specifying requested resources, wherein theplurality of descriptors are selected from a minimum bandwidthrequirement, a mean bandwidth requirement, a maximum time delay for datatransmission, a peak data rate, a mean data rate, and a quality ofservice requirement; and compute an admission test count representingoverall required resources when the new data flow is admitted, whereinthe admission test count is computed based upon the plurality ofdescriptors of the new data flow and upon reservation counts, whereineach reservation count represents a product function constituted by aproduct of functions having as variables the plurality of descriptors ofthe admitted data flows; and a data flow control unit configured toadmit the new data flow, when the admission test count is smaller than amaximum admission count representing a maximum bandwidth capability ofthe network; wherein the resource manager is further configured to:update the admission test count to include the descriptors of the newdata flow, when the new data flow is admitted; receive a releaseinstruction for an identified admitted data flow; release the identifiedadmitted data flow by dividing the reservation counts by the productfunction of the descriptors of the released data flow; and update eachreservation count, when a release instruction for one of the admitteddata flows is received, based on the corresponding descriptors of thereleased data flow.
 8. The network node as recited in claim 7, whereinthe resource manager is configured to update the admission test count bymultiplying the reservation count with the product function of thedescriptors of the new data flow.
 9. The network node as recited inclaim 7, wherein the resource manager is configured to compute eachreservation count based on data flows admitted or refreshed during arefresh window having a predetermined duration.
 10. The network node asrecited in claim 9, wherein each reservation count comprises a pluralityof sub-counts, each sub-count based on data flows admitted or refreshedduring adjacent sub-portions of the refresh window, a sub-portioncorresponding to a unit in time for advancing the refresh window. 11.The network node as recited in claim 10, wherein the resource manager isconfigured to release a data flow unless a refresh request associatedwith the data flow is received during the refresh window or when anexplicit release instruction is received.
 12. The network node asrecited in claim 11, wherein the resource manager is configured togenerate a new sub-count upon advancing the refresh window by one unitin time and to discard the oldest of the sub-counts.